/**
 * 权限模块类型定义
 */
import type { PageParams } from './base';

/**
 * 权限相关API命名空间
 */
export namespace PermissionApi {
  /**
   * 权限信息
   */
  export interface PermissionVO {
    /**
     * 权限ID
     */
    id: string;

    /**
     * 权限名称
     */
    name: string;

    /**
     * 权限编码
     */
    code: string;

    /**
     * 权限类型（1-菜单，2-按钮，3-接口）
     */
    type: number;

    /**
     * 权限描述
     */
    description: string;

    /**
     * 状态（0-禁用，1-启用）
     */
    status: number;

    /**
     * 创建时间
     */
    createdTime: string;

    /**
     * 更新时间
     */
    updatedTime: string;

    /**
     * 父级ID
     */
    parentId: string;
  }

  /**
   * 权限分类树
   */
  export interface PermissionTree extends PermissionVO {
    children: PermissionVO[];
  }

  /**
   * 权限类型
   */
  export interface PermissionTypeVO {
    /**
     * 类型值
     */
    value: number;

    /**
     * 类型标签
     */
    label: string;
  }

  /**
   * 权限更新参数
   */
  export interface UpdateParams {
    /**
     * 权限ID
     */
    id: string;

    /**
     * 权限名称
     */
    name?: string;

    /**
     * 权限描述
     */
    description?: string;

    /**
     * 权限类型
     */
    type?: number;

    /**
     * 状态
     */
    status?: number;
  }

  /**
   * 权限状态更新参数
   */
  export interface StatusUpdateParams {
    /**
     * 权限ID
     */
    permissionId: string;

    /**
     * 状态（0-禁用，1-启用）
     */
    status: number;
  }

  /**
   * 权限列表查询参数
   */
  export interface PermissionListParams extends PageParams {
    /**
     * 权限名称
     */
    name?: string;

    /**
     * 权限编码
     */
    code?: string;

    /**
     * 权限类别
     */
    categoryId?: number;

    /**
     * 状态
     */
    status?: number;
  }

  /**
   * 权限分类信息
   */
  export interface PermissionModuleVO {
    /**
     * 权限模块ID
     */
    value: string;

    /**
     * 权限模块名称
     */
    label: string;
  }
}
